package com.shujia;

import org.apache.hadoop.hive.ql.exec.UDF;

public class MyUDF extends UDF {
    /**
     * select myfun('abCd'); => Abcd
     * 对于传入的英文字符串，将首字母大写 其他的变成小写
     *
     * 步骤：
     *    1.创建自定义类 需要继承UDF函数
     *
     *    2.在自定函数中编写evaluate函数
     *
     *    3.将项目打包，并通过 add jar 命令将jar包添加到 classPath路径下
     *          add jar  jar包的本地路径
     *    4.创建临时函数
     *          create temporary function myfun as 'com.shujia.MyUDF';
     *
     */

    // 由于需求中给定的函数 myfun 是传入一个字符串 返回一个字符串，所以对应 evaluate 函数输入及输出类型都是String
    public String evaluate(String str) {
        // 对于SQL表中每一行数据执行一次 evaluate

        String upperCase = str.substring(0, 1).toUpperCase();
        String lowerStr = str.substring(1).toLowerCase();

        return upperCase + lowerStr;
    }
}
